package com.ohuang.launcher.tiktok;

import android.app.Activity;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;

import com.ohuang.launcher.smallwindow.DialogWindow;
import com.ohuang.launcher.smallwindow.WindowUI;
import com.ohuang.launcher.util.SPUtil;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CoutryIsoWindowUI extends DialogWindow {

    List<String> data = new ArrayList<>();
    Map<String, String> map = new HashMap<>();
    Map<String, String> fanMap = new HashMap<>();
    ListView listView;
    TextAdapter textAdapter;

    public CoutryIsoWindowUI(Activity activity) {
        super(activity);
    }

    @Override
    protected View createView(Activity activity) {
        initData();


        LinearLayout linearLayout = new LinearLayout(activity);
        linearLayout.setBackgroundColor(0xa0000000);
        linearLayout.setOrientation(LinearLayout.VERTICAL);
        Button button = new Button(activity);
        button.setText("关闭");
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                hide();
            }
        });

        linearLayout.addView(button, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        Button textView = new Button(activity);
        textView.setText("当前国家:" + fanMap.get(TikTokHook.countryIso));
        linearLayout.addView(textView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

        EditText editText=new EditText(activity);
        editText.setBackgroundColor(0xff000000);
        editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
        editText.setSingleLine();
        editText.setTextColor(0xffaaaaaa);
        editText.setHintTextColor(0xffaaaaaa);
        editText.setHint("请输入内容快速查找");
        linearLayout.addView(editText, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);


        editText.setOnKeyListener((v, keyCode, event) -> {
            if (keyCode == KeyEvent.KEYCODE_ENTER) {
                String keyword = editText.getText().toString().trim();
                if (TextUtils.isEmpty(keyword)) {
                    textAdapter.setData(data);
                } else {
                    List<String> arrayList=new ArrayList<>();
                    for (String datum : data) {
                        if (datum.contains(keyword)){
                            arrayList.add(datum);
                        }
                    }
                    textAdapter.setData(arrayList);
                }
            }
            return false;
        });

         listView = new ListView(activity);
         textAdapter = new TextAdapter(data);
        textAdapter.setListener(new TextAdapter.Listener() {
            @Override
            public void onClick(String s, int posistion) {
                SPUtil.getInstance("tiktokHook").put(activity,"iso",map.get(s));
                Toast.makeText(activity,"修改地区为《"+s+"》,重启后生效",Toast.LENGTH_LONG).show();
                hide();
            }
        });
        listView.setAdapter(textAdapter);
        linearLayout.addView(listView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        return linearLayout;
    }

    private void initData() {
        addData("香港", "hk");
        addData("日本", "jp");
        addData("美国", "us");
        addData("台湾", "tw");
        addData("韩国", "kr");
        addData("印度", "in");
        addData("俄罗斯", "ru");
        addData("英国", "gb");
        addData("法国", "fr");
        addData("德国", "de");

        addData("安道尔", "AD");
        addData("阿联酋", "AE");
        addData("阿富汗", "AF");
        addData("安提瓜和巴布达", "AG");
        addData("安圭拉", "AI");
        addData("阿尔巴尼亚", "AL");
        addData("亚美尼亚", "AM");
        addData("安哥拉", "AO");
        addData("南极洲", "AQ");
        addData("阿根廷", "AR");
        addData("美属萨摩亚", "AS");
        addData("奥地利", "AT");
        addData("澳大利亚", "AU");
        addData("阿鲁巴", "AW");
        addData("奥兰群岛", "AX");
        addData("阿塞拜疆", "AZ");
        addData("波黑", "BA");
        addData("巴巴多斯", "BB");
        addData("孟加拉", "BD");
        addData("比利时", "BE");
        addData("布基纳法索", "BF");
        addData("保加利亚", "BG");
        addData("巴林", "BH");
        addData("布隆迪", "BI");
        addData("贝宁", "BJ");
        addData("圣巴泰勒米岛", "BL");
        addData("百慕大", "BM");
        addData("文莱", "BN");
        addData("玻利维亚", "BO");
        addData("荷兰加勒比区", "BQ");
        addData("巴西", "BR");
        addData("巴哈马", "BS");
        addData("不丹", "BT");
        addData("布韦岛", "BV");
        addData("博茨瓦纳", "BW");
        addData("白俄罗斯", "BY");
        addData("伯利兹", "BZ");
        addData("加拿大", "CA");
        addData("科科斯群岛", "CC");
        addData("刚果（金）", "CD");
        addData("中非", "CF");
        addData("刚果（布）", "CG");
        addData("瑞士", "CH");
        addData("科特迪瓦", "CI");
        addData("库克群岛", "CK");
        addData("智利", "CL");
        addData("喀麦隆", "CM");
        addData("中国", "CN");
        addData("哥伦比亚", "CO");
        addData("哥斯达黎加", "CR");
        addData("古巴", "CU");
        addData("佛得角", "CV");
        addData("圣诞岛", "CX");
        addData("塞浦路斯", "CY");
        addData("捷克", "CZ");
        addData("德国", "DE");
        addData("吉布提", "DJ");
        addData("丹麦", "DK");
        addData("多米尼克", "DM");
        addData("多米尼加", "DO");
        addData("阿尔及利亚", "DZ");
        addData("厄瓜多尔", "EC");
        addData("爱沙尼亚", "EE");
        addData("埃及", "EG");
        addData("西撒哈拉", "EH");
        addData("厄立特里亚", "ER");
        addData("西班牙", "ES");
        addData("埃塞俄比亚", "ET");
        addData("芬兰", "FI");
        addData("斐济群岛", "FJ");
        addData("马尔维纳斯群岛（福克兰）", "FK");
        addData("密克罗尼西亚联邦", "FM");
        addData("法罗群岛", "FO");
        addData("法国", "FR");
        addData("加蓬", "GA");
        addData("英国", "GB");
        addData("格林纳达", "GD");
        addData("格鲁吉亚", "GE");
        addData("法属圭亚那", "GF");
        addData("根西岛", "GG");
        addData("加纳", "GH");
        addData("直布罗陀", "GI");
        addData("格陵兰", "GL");
        addData("冈比亚", "GM");
        addData("几内亚", "GN");
        addData("瓜德罗普", "GP");
        addData("赤道几内亚", "GQ");
        addData("希腊", "GR");
        addData("南乔治亚岛和南桑威奇群岛", "GS");
        addData("危地马拉", "GT");
        addData("关岛", "GU");
        addData("几内亚比绍", "GW");
        addData("圭亚那", "GY");
        addData("香港", "HK");
        addData("赫德岛和麦克唐纳群岛", "HM");
        addData("洪都拉斯", "HN");
        addData("克罗地亚", "HR");
        addData("海地", "HT");
        addData("匈牙利", "HU");
        addData("印尼", "ID");
        addData("爱尔兰", "IE");
        addData("以色列", "IL");
        addData("马恩岛", "IM");
        addData("印度", "IN");
        addData("英属印度洋领地", "IO");
        addData("伊拉克", "IQ");
        addData("伊朗", "IR");
        addData("冰岛", "IS");
        addData("意大利", "IT");
        addData("泽西岛", "JE");
        addData("牙买加", "JM");
        addData("约旦", "JO");
        addData("日本", "JP");
        addData("肯尼亚", "KE");
        addData("吉尔吉斯斯坦", "KG");
        addData("柬埔寨", "KH");
        addData("基里巴斯", "KI");
        addData("科摩罗", "KM");
        addData("圣基茨和尼维斯", "KN");
        addData("朝鲜", "KP");
        addData("韩国", "KR");
        addData("科威特", "KW");
        addData("开曼群岛", "KY");
        addData("哈萨克斯坦", "KZ");
        addData("老挝", "LA");
        addData("黎巴嫩", "LB");
        addData("圣卢西亚", "LC");
        addData("列支敦士登", "LI");
        addData("斯里兰卡", "LK");
        addData("利比里亚", "LR");
        addData("莱索托", "LS");
        addData("立陶宛", "LT");
        addData("卢森堡", "LU");
        addData("拉脱维亚", "LV");
        addData("利比亚", "LY");
        addData("摩洛哥", "MA");
        addData("摩纳哥", "MC");
        addData("摩尔多瓦", "MD");
        addData("黑山", "ME");
        addData("法属圣马丁", "MF");
        addData("马达加斯加", "MG");
        addData("马绍尔群岛", "MH");
        addData("马其顿", "MK");
        addData("马里", "ML");
        addData("缅甸", "MM");
        addData("蒙古", "MN");
        addData("澳门", "MO");
        addData("北马里亚纳群岛", "MP");
        addData("马提尼克", "MQ");
        addData("毛里塔尼亚", "MR");
        addData("蒙塞拉特岛", "MS");
        addData("马耳他", "MT");
        addData("毛里求斯", "MU");
        addData("马尔代夫", "MV");
        addData("马拉维", "MW");
        addData("墨西哥", "MX");
        addData("马来西亚", "MY");
        addData("莫桑比克", "MZ");
        addData("纳米比亚", "NA");
        addData("新喀里多尼亚", "NC");
        addData("尼日尔", "NE");
        addData("诺福克岛", "NF");
        addData("尼日利亚", "NG");
        addData("尼加拉瓜", "NI");
        addData("荷兰", "NL");
        addData("挪威", "NO");
        addData("尼泊尔", "NP");
        addData("瑙鲁", "NR");
        addData("纽埃", "NU");
        addData("新西兰", "NZ");
        addData("阿曼", "OM");
        addData("巴拿马", "PA");
        addData("秘鲁", "PE");
        addData("法属波利尼西亚", "PF");
        addData("巴布亚新几内亚", "PG");
        addData("菲律宾", "PH");
        addData("巴基斯坦", "PK");
        addData("波兰", "PL");
        addData("圣皮埃尔和密克隆", "PM");
        addData("皮特凯恩群岛", "PN");
        addData("波多黎各", "PR");
        addData("巴勒斯坦", "PS");
        addData("葡萄牙", "PT");
        addData("帕劳", "PW");
        addData("巴拉圭", "PY");
        addData("卡塔尔", "QA");
        addData("留尼汪", "RE");
        addData("罗马尼亚", "RO");
        addData("塞尔维亚", "RS");
        addData("俄罗斯", "RU");
        addData("卢旺达", "RW");
        addData("沙特阿拉伯", "SA");
        addData("所罗门群岛", "SB");
        addData("塞舌尔", "SC");
        addData("苏丹", "SD");
        addData("瑞典", "SE");
        addData("新加坡", "SG");
        addData("圣赫勒拿", "SH");
        addData("斯洛文尼亚", "SI");
        addData("Template", "SJ");
        addData("斯洛伐克", "SK");
        addData("塞拉利昂", "SL");
        addData("圣马力诺", "SM");
        addData("塞内加尔", "SN");
        addData("索马里", "SO");
        addData("苏里南", "SR");
        addData("南苏丹", "SS");
        addData("圣多美和普林西比", "ST");
        addData("萨尔瓦多", "SV");
        addData("叙利亚", "SY");
        addData("斯威士兰", "SZ");
        addData("特克斯和凯科斯群岛", "TC");
        addData("乍得", "TD");
        addData("法属南部领地", "TF");
        addData("多哥", "TG");
        addData("泰国", "TH");
        addData("塔吉克斯坦", "TJ");
        addData("托克劳", "TK");
        addData("东帝汶", "TP");
        addData("土库曼斯坦", "TM");
        addData("突尼斯", "TN");
        addData("汤加", "TO");
        addData("土耳其", "TR");
        addData("特立尼达和多巴哥", "TT");
        addData("图瓦卢", "TV");
        addData("中国台湾", "TW");
        addData("坦桑尼亚", "TZ");
        addData("乌克兰", "UA");
        addData("乌干达", "UG");
        addData("美国本土外小岛屿", "UM");
        addData("美国", "US");
        addData("乌拉圭", "UY");
        addData("乌兹别克斯坦", "UZ");
        addData("梵蒂冈", "VA");
        addData("圣文森特和格林纳丁斯", "VC");
        addData("委内瑞拉", "VE");
        addData("英属维尔京群岛", "VG");
        addData("美属维尔京群岛", "VI");
        addData("越南", "VN");
        addData("瓦努阿图", "VU");
        addData("瓦利斯和富图纳", "WF");
        addData("萨摩亚", "WS");
        addData("也门", "YE");
        addData("马约特", "YT");
        addData("南非", "ZA");
        addData("赞比亚", "ZM");
        addData("津巴布韦", "ZW");
    }

    private void addData(String key,String value){
        data.add(key);
        map.put(key, value);
        fanMap.put(value,key);
    }

    @Override
    protected void initView(View view) {

    }
}
